package com.zqx.templatemethod.abstracttemplatemethod;

import lombok.extern.slf4j.Slf4j;

/**
 * description: 模板抽象类
 * @author zqx
 * @date 2018/09/06
 */
@Slf4j
public abstract class Account {

    //基本方法-具体方法（钩子方法）
    public boolean validate(String account,String password){
        log.info("【账号】,{}",account);
        log.info("【密码】,{}",password);
        if(account.equalsIgnoreCase("张玉娜")&& password.equalsIgnoreCase("5201314")){
            return true;
        }else {
            return false;
        }
    }

    //基本方法-抽象方法
    public abstract void calculateInterest();

    //基本方法-具体方法
    public void display(){
        log.info("【显示利息】");
    }

    //模板方法
    public void handle(String account,String password){
        if(!validate(account, password)){
            log.info("【账号或密码错误】");
            return;
        }
        //利息计算方式
        calculateInterest();
        //显示利息
        display();

    }
}
